First developed in 1994, QR codes are a two-dimensional barcode type that has come into much popularity with the recent ubiquity of mobile devices. Featuring a robust error correction mechanism and a number of structurally identifying features, this barcode type has been designed around ease of recognition. The most visually striking features of QR codes are the concentric square finder patterns and alignment patterns. These patterns serve as indicate boundary markers and indicate locations within the code to accurately align the barcode's modules.
Typical currently employed methods for locating finder patterns and alignment patterns within an image tend to require a relatively large number of pixel computations. This relatively large number of pixel computations results in a relatively long time processing time in locating a finder or alignment pattern when using a single processor. A large number of processors can be used in parallel to reduce the time to locate a finder or alignment pattern, but this may be expensive to implement. Also, processing time used for locating an alignment/finder pattern cannot be used for another application. In addition, in mobile devices, which are battery operated the amount of processing required to perform an operation correlates to the amount of battery energy being depleted.
Based on the above discussion it would be advantageous if more efficient methods and apparatus were developed for locating finder and/or alignment patterns within an image were developed.